#ifndef WG_RANDOM_HEADER
#define WG_RANDOM_HEADER

#define HASHSIZE 10

/**
 * Prototypes To Be Used By Workload Generators
 */
#include <stdlib.h>
#include "cJSON.h"

void setup_random_environment(void);

int setup_rng(char *, cJSON *);
double get_random_number(char *);

int setup_rng_buffer(pthread_t);
struct drand48_data * get_rng_buffer(pthread_t);

//Use unsigned long integers as a hash
typedef unsigned long int hashed;

hashed int_hash(unsigned long int);

struct constant_distribution {
  double constant;
};

struct poisson_distribution {
  double lambda;
};

struct normal_distribution {
  double mean;
  double std;
};

struct uniform_distribution {
  double min;
  double max;
};

#endif
